LCS algorithms